// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
export default{
  install (Vue, options) {
    Vue.prototype.getPdf = function (dom) {
      var title = this.htmlTitle
      debugger
      html2Canvas(document.querySelector( dom ? dom : '#pdfDom'), {
                   allowTaint: true,
        		        taintTest: false,
        		        useCORS: true,
        		        //width:960,
        		        //height:5072,
        		        dpi: window.devicePixelRatio*2, //将分辨率提高到特定的DPI 提高四倍
        		        scale:2 //按比例增加分辨率
      }).then(function (canvas) {
             // const contentWidth = canvas.width
             // const contentHeight = canvas.height
             // // 一页pdf显示html页面生成的canvas高度;
             // const pageHeight = contentWidth / 592.28 * 841.89
             // // 生成pdf的html页面高度
             // let leftHeight = contentHeight
             // // 页面偏移
             // let position = 0
             // // a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
             // const imgWidth = 595.28
             // const imgHeight = 592.28 / contentWidth * contentHeight
             // // canvas.crossOrigin="anonymous";
             // const pageData = canvas.toDataURL('image/jpeg', 1.0)

             // const PDF = new JsPDF('', 'pt', 'a4')
             // // 有两个高度需要区分，一个是html页面的实际高度，和生成pdf的页面高度(841.89)
             // // 当内容未超过pdf一页显示的范围，无需分页
             // if (leftHeight < pageHeight) {
             //   PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
             // } else {
             //   while (leftHeight > 0) {
             //     PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
             //     leftHeight -= pageHeight
             //     position -= 841.89
             //     if (leftHeight > 0) {
             //       // 避免添加空白页
             //       PDF.addPage()
             //     }
             //   }
             // }

                    const contentWidth = canvas.width
                     const contentHeight = canvas.height

                      /* 导出不分页处理 */
                     const pageData = canvas.toDataURL('image/jpeg', 1.0)

                     const pdfWidth = (contentWidth + 10) / 2 * 0.75
                     const pdfHeight = (contentHeight + 200) / 2 * 0.75 // 500为底部留白

                     const imgWidth = pdfWidth
                     const imgHeight = (contentHeight / 2 * 0.75) // 内容图片这里不需要留白的距离

                     const PDF = new JsPDF('', 'pt', [ pdfWidth, pdfHeight, ])
                     PDF.addImage(pageData, 'jpeg', 0, 0, imgWidth, imgHeight)
             PDF.save(title + '.pdf')

      }
      )
    }
  }
}
